package com.chushouya.manager.service.admin;

import com.chushouya.manager.dto.admin.banner.*;
import com.general.framework.core.schema.PageResult;
import com.chushouya.manager.dto.admin.banner.*;

import java.util.List;

/**
 * Banner横幅广告管理服务
 * 提供后台管理相关的增删改查功能
 * 
 * @author chushouya
 */
public interface BannerService {

    /**
     * 分页查询Banner列表
     * 
     * @param query 查询条件
     * @return 分页结果
     */
    PageResult<BannerListDTO> selectPage(BannerQuery query);

    /**
     * 查询Banner详情
     * 
     * @param bannerId Banner ID
     * @return Banner详情
     */
    BannerDetailDTO detail(Long bannerId);

    /**
     * 新增Banner
     * 
     * @param saveDTO 保存数据
     */
    void save(BannerSaveDTO saveDTO);

    /**
     * 更新Banner
     * 
     * @param updateDTO 更新数据
     */
    void update(BannerUpdateDTO updateDTO);

    /**
     * 删除Banner
     * 
     * @param bannerId Banner ID
     */
    void delete(Long bannerId);

    /**
     * 批量删除Banner
     * 
     * @param bannerIds Banner ID列表
     */
    void batchDelete(List<Long> bannerIds);

    /**
     * 更新Banner状态
     * 
     * @param bannerId Banner ID
     * @param status 状态（0:禁用, 1:启用）
     */
    void updateStatus(Long bannerId, Integer status);

    /**
     * 更新Banner排序
     * 
     * @param bannerId Banner ID
     * @param sort 排序值
     */
    void updateSort(Long bannerId, Integer sort);

    /**
     * 批量更新Banner排序
     * 
     * @param sortList 排序列表
     */
    void batchUpdateSort(List<BannerSortDTO> sortList);
}
